Descriptive Statistics
Missingness
vis_miss(df, sort_miss = T) +
ylab("Countries") +
theme(axis.text.y = element_blank(),
axis.ticks.x = element_line(),
panel.grid = element_blank(),
axis.text.x = element_text(angle=90))

if (SAVE.RESULTS) {
ggsave(paste(output.fig.dir, '/missingness.png', sep=''), width = 5, height = 8)
}
Summary Statistics
sumtable(df, out='return')
## Variable N Mean Std. Dev. Min Pctl. 25 Pctl. 75 Max
## 1 corruption_control 47 -0.099 0.894 -1.542 -0.576 0.468 2.15
## 2 gov_effectiveness 47 -0.052 0.843 -1.523 -0.738 0.371 1.662
## 3 rule_of_law 47 -0.107 0.856 -1.808 -0.728 0.362 1.883
## 4 conflict_displacement 46 13.86 53.809 0 0 1.166 354.686
## 5 disaster_displacement 46 8.732 24.202 0 0 1.177 111.7
## 6 air_quality 49 41.565 26.903 9.9 26.8 50.3 100
## 7 climate_change 45 41.216 14.713 1.02 31 50.6 70.4
## 8 migrant_stock 47 96.677 164.354 0.059 1.124 127.187 768.586
## 9 refugee_stock 29 11.852 30.309 0.001 0.074 7.248 142.815
## 10 gdp 46 9.837 14.729 0.53 2.241 7.941 58.057
## 11 cpa_d_12 25 3.42 0.731 1.5 3 4 5
## 12 cpa_d_avg 25 3.4 0.533 2.7 3 3.8 5
## 13 hdi_value 43 0.726 0.117 0.511 0.626 0.796 0.949
## 14 gini 33 35.664 4.269 28 32.8 38.2 46.5
## 15 state_legit 38 3.718 2.541 0.2 1.8 5.675 9.5
if (SAVE.RESULTS) {
sumtable(df, out='csv', file=paste(output.tab.dir, '/summary_table.csv', sep=''))
}
## Variable N Mean Std. Dev. Min Pctl. 25 Pctl. 75 Max
## 1 corruption_control 47 -0.099 0.894 -1.542 -0.576 0.468 2.15
## 2 gov_effectiveness 47 -0.052 0.843 -1.523 -0.738 0.371 1.662
## 3 rule_of_law 47 -0.107 0.856 -1.808 -0.728 0.362 1.883
## 4 conflict_displacement 46 13.86 53.809 0 0 1.166 354.686
## 5 disaster_displacement 46 8.732 24.202 0 0 1.177 111.7
## 6 air_quality 49 41.565 26.903 9.9 26.8 50.3 100
## 7 climate_change 45 41.216 14.713 1.02 31 50.6 70.4
## 8 migrant_stock 47 96.677 164.354 0.059 1.124 127.187 768.586
## 9 refugee_stock 29 11.852 30.309 0.001 0.074 7.248 142.815
## 10 gdp 46 9.837 14.729 0.53 2.241 7.941 58.057
## 11 cpa_d_12 25 3.42 0.731 1.5 3 4 5
## 12 cpa_d_avg 25 3.4 0.533 2.7 3 3.8 5
## 13 hdi_value 43 0.726 0.117 0.511 0.626 0.796 0.949
## 14 gini 33 35.664 4.269 28 32.8 38.2 46.5
## 15 state_legit 38 3.718 2.541 0.2 1.8 5.675 9.5
Correlation Matrix
df.rcorr <- df %>%
select(-iso, -country_name) %>%
as.matrix() %>%
rcorr()
corrplot(corr=df.rcorr$r,
p.mat = df.rcorr$P,
type='lower', insig='pch', sig.level =.1, pch.cex = .9, diag=F,
tl.cex=.7, tl.col='black', tl.offset=.5, cl.pos='r', win.asp=1)

if (SAVE.RESULTS) {
pdf(file=paste(output.fig.dir, '/corr_matrix.pdf', sep=''))
corrplot(corr=df.rcorr$r,
p.mat = df.rcorr$P,
type='lower', insig='pch', sig.level =.1, pch.cex = .9, diag=F,
tl.cex=.7, tl.col='black', tl.offset=.5, cl.pos='r', win.asp=1)
dev.off()
}
## quartz_off_screen
## 2
dist_plots <- lapply(names(df %>% select(-iso, -country_name)), function(var_x){
p <-
ggplot(df) +
aes_string(var_x) +
theme_light() +
theme(
axis.text = element_blank(),
axis.title.y = element_blank(),
axis.title.x = element_text(family='Helvetica', size=9),
axis.ticks = element_blank()
)
if(is.numeric(df[[var_x]])) {
p <- p + geom_density()
}
})
cowplot::plot_grid(plotlist = dist_plots)
## Warning: Removed 2 rows containing non-finite values (stat_density).
## Warning: Removed 2 rows containing non-finite values (stat_density).
## Warning: Removed 2 rows containing non-finite values (stat_density).
## Warning: Removed 3 rows containing non-finite values (stat_density).
## Warning: Removed 3 rows containing non-finite values (stat_density).
## Warning: Removed 4 rows containing non-finite values (stat_density).
## Warning: Removed 2 rows containing non-finite values (stat_density).
## Warning: Removed 20 rows containing non-finite values (stat_density).
## Warning: Removed 3 rows containing non-finite values (stat_density).
## Warning: Removed 24 rows containing non-finite values (stat_density).
## Warning: Removed 24 rows containing non-finite values (stat_density).
## Warning: Removed 6 rows containing non-finite values (stat_density).
## Warning: Removed 16 rows containing non-finite values (stat_density).
## Warning: Removed 11 rows containing non-finite values (stat_density).

if (SAVE.RESULTS) {
ggsave(filename = paste(output.fig.dir, '/distributions.png', sep = ''))
}
## Saving 7 x 5 in image
All countries
lapply(names(df %>% select(-iso, -country_name, -state_legit)),
function(var_x){
plt <- ggplot(df, aes_string(x=var_x, y='state_legit')) +
geom_point(colour='orange') +
stat_smooth(method='lm', formula='y~x', fullrange=T, color='purple') +
ggrepel::geom_text_repel(label=df$iso) +
theme_classic() +
labs(title=paste(col_names[var_x], 'vs.', 'State Legitimacy'))
print(plt)
if (SAVE.RESULTS) {
ggsave(paste(output.fig.dir, '/state_legit_X_', var_x, '.png', sep=''))
}
}
)
## Warning: Removed 12 rows containing non-finite values (stat_smooth).
## Warning: Removed 12 rows containing missing values (geom_point).
## Warning: Removed 12 rows containing missing values (geom_text_repel).
## Saving 7 x 5 in image
## Warning: Removed 12 rows containing non-finite values (stat_smooth).
## Warning: Removed 12 rows containing missing values (geom_point).
## Warning: Removed 12 rows containing missing values (geom_text_repel).

## Warning: Removed 12 rows containing non-finite values (stat_smooth).
## Warning: Removed 12 rows containing missing values (geom_point).
## Warning: Removed 12 rows containing missing values (geom_text_repel).
## Saving 7 x 5 in image
## Warning: Removed 12 rows containing non-finite values (stat_smooth).
## Warning: Removed 12 rows containing missing values (geom_point).
## Warning: Removed 12 rows containing missing values (geom_text_repel).

## Warning: Removed 12 rows containing non-finite values (stat_smooth).
## Warning: Removed 12 rows containing missing values (geom_point).
## Warning: Removed 12 rows containing missing values (geom_text_repel).
## Saving 7 x 5 in image
## Warning: Removed 12 rows containing non-finite values (stat_smooth).
## Warning: Removed 12 rows containing missing values (geom_point).
## Warning: Removed 12 rows containing missing values (geom_text_repel).

## Warning: Removed 12 rows containing non-finite values (stat_smooth).
## Warning: Removed 12 rows containing missing values (geom_point).
## Warning: Removed 12 rows containing missing values (geom_text_repel).
## Warning: ggrepel: 7 unlabeled data points (too many overlaps). Consider
## increasing max.overlaps
## Saving 7 x 5 in image
## Warning: Removed 12 rows containing non-finite values (stat_smooth).
## Warning: Removed 12 rows containing missing values (geom_point).
## Warning: Removed 12 rows containing missing values (geom_text_repel).
## Warning: ggrepel: 7 unlabeled data points (too many overlaps). Consider
## increasing max.overlaps

## Warning: Removed 12 rows containing non-finite values (stat_smooth).
## Warning: Removed 12 rows containing missing values (geom_point).
## Warning: Removed 12 rows containing missing values (geom_text_repel).
## Saving 7 x 5 in image
## Warning: Removed 12 rows containing non-finite values (stat_smooth).
## Warning: Removed 12 rows containing missing values (geom_point).
## Warning: Removed 12 rows containing missing values (geom_text_repel).

## Warning: Removed 11 rows containing non-finite values (stat_smooth).
## Warning: Removed 11 rows containing missing values (geom_point).
## Warning: Removed 11 rows containing missing values (geom_text_repel).
## Saving 7 x 5 in image
## Warning: Removed 11 rows containing non-finite values (stat_smooth).
## Warning: Removed 11 rows containing missing values (geom_point).
## Warning: Removed 11 rows containing missing values (geom_text_repel).

## Warning: Removed 11 rows containing non-finite values (stat_smooth).
## Warning: Removed 11 rows containing missing values (geom_point).
## Warning: Removed 11 rows containing missing values (geom_text_repel).
## Saving 7 x 5 in image
## Warning: Removed 11 rows containing non-finite values (stat_smooth).
## Warning: Removed 11 rows containing missing values (geom_point).
## Warning: Removed 11 rows containing missing values (geom_text_repel).

## Warning: Removed 11 rows containing non-finite values (stat_smooth).
## Warning: Removed 11 rows containing missing values (geom_point).
## Warning: Removed 11 rows containing missing values (geom_text_repel).
## Saving 7 x 5 in image
## Warning: Removed 11 rows containing non-finite values (stat_smooth).
## Warning: Removed 11 rows containing missing values (geom_point).
## Warning: Removed 11 rows containing missing values (geom_text_repel).

## Warning: Removed 22 rows containing non-finite values (stat_smooth).
## Warning: Removed 22 rows containing missing values (geom_point).
## Warning: Removed 22 rows containing missing values (geom_text_repel).
## Saving 7 x 5 in image
## Warning: Removed 22 rows containing non-finite values (stat_smooth).
## Warning: Removed 22 rows containing missing values (geom_point).
## Warning: Removed 22 rows containing missing values (geom_text_repel).

## Warning: Removed 11 rows containing non-finite values (stat_smooth).
## Warning: Removed 11 rows containing missing values (geom_point).
## Warning: Removed 11 rows containing missing values (geom_text_repel).
## Warning: ggrepel: 1 unlabeled data points (too many overlaps). Consider
## increasing max.overlaps
## Saving 7 x 5 in image
## Warning: Removed 11 rows containing non-finite values (stat_smooth).
## Warning: Removed 11 rows containing missing values (geom_point).
## Warning: Removed 11 rows containing missing values (geom_text_repel).
## Warning: ggrepel: 1 unlabeled data points (too many overlaps). Consider
## increasing max.overlaps

## Warning: Removed 31 rows containing non-finite values (stat_smooth).
## Warning: Removed 31 rows containing missing values (geom_point).
## Warning: Removed 31 rows containing missing values (geom_text_repel).
## Saving 7 x 5 in image
## Warning: Removed 31 rows containing non-finite values (stat_smooth).
## Warning: Removed 31 rows containing missing values (geom_point).
## Warning: Removed 31 rows containing missing values (geom_text_repel).

## Warning: Removed 31 rows containing non-finite values (stat_smooth).
## Warning: Removed 31 rows containing missing values (geom_point).
## Warning: Removed 31 rows containing missing values (geom_text_repel).
## Saving 7 x 5 in image
## Warning: Removed 31 rows containing non-finite values (stat_smooth).
## Warning: Removed 31 rows containing missing values (geom_point).
## Warning: Removed 31 rows containing missing values (geom_text_repel).

## Warning: Removed 11 rows containing non-finite values (stat_smooth).
## Warning: Removed 11 rows containing missing values (geom_point).
## Warning: Removed 11 rows containing missing values (geom_text_repel).
## Saving 7 x 5 in image
## Warning: Removed 11 rows containing non-finite values (stat_smooth).
## Warning: Removed 11 rows containing missing values (geom_point).
## Warning: Removed 11 rows containing missing values (geom_text_repel).

## Warning: Removed 20 rows containing non-finite values (stat_smooth).
## Warning: Removed 20 rows containing missing values (geom_point).
## Warning: Removed 20 rows containing missing values (geom_text_repel).
## Saving 7 x 5 in image
## Warning: Removed 20 rows containing non-finite values (stat_smooth).
## Warning: Removed 20 rows containing missing values (geom_point).
## Warning: Removed 20 rows containing missing values (geom_text_repel).

## [[1]]
## [1] "../../output/figures/state_legit_X_corruption_control.png"
##
## [[2]]
## [1] "../../output/figures/state_legit_X_gov_effectiveness.png"
##
## [[3]]
## [1] "../../output/figures/state_legit_X_rule_of_law.png"
##
## [[4]]
## [1] "../../output/figures/state_legit_X_conflict_displacement.png"
##
## [[5]]
## [1] "../../output/figures/state_legit_X_disaster_displacement.png"
##
## [[6]]
## [1] "../../output/figures/state_legit_X_air_quality.png"
##
## [[7]]
## [1] "../../output/figures/state_legit_X_climate_change.png"
##
## [[8]]
## [1] "../../output/figures/state_legit_X_migrant_stock.png"
##
## [[9]]
## [1] "../../output/figures/state_legit_X_refugee_stock.png"
##
## [[10]]
## [1] "../../output/figures/state_legit_X_gdp.png"
##
## [[11]]
## [1] "../../output/figures/state_legit_X_cpa_d_12.png"
##
## [[12]]
## [1] "../../output/figures/state_legit_X_cpa_d_avg.png"
##
## [[13]]
## [1] "../../output/figures/state_legit_X_hdi_value.png"
##
## [[14]]
## [1] "../../output/figures/state_legit_X_gini.png"
Recipient Countries
adb <- read_csv("../../data/final/adb-members.csv")
##
## ── Column specification ────────────────────────────────────────────────────────
## cols(
## country_name = col_character(),
## iso = col_character(),
## region = col_character(),
## donor = col_double(),
## sids = col_double(),
## ldc = col_double()
## )
df.recip <- adb %>%
select(iso, donor) %>%
right_join(df, by='iso') %>%
filter(donor==0)
lapply(names(df.recip %>% select(-iso, -country_name, -state_legit, -donor)),
function(var_x){
plt <- ggplot(df.recip, aes_string(x=var_x, y='state_legit')) +
geom_point(colour='orange') +
stat_smooth(method='lm', formula='y~x', fullrange=T, color='purple') +
ggrepel::geom_text_repel(label=df.recip$iso) +
theme_classic() +
labs(title=paste(col_names[var_x], 'vs.', 'State Legitimacy'), subtitle="Recipient Countries")
print(plt)
if (SAVE.RESULTS) {
ggsave(paste(output.fig.dir, '/state_legit_X_', var_x, '_recipients', '.png', sep=''))
}
}
)
## Warning: Removed 8 rows containing non-finite values (stat_smooth).
## Warning: Removed 8 rows containing missing values (geom_point).
## Warning: Removed 8 rows containing missing values (geom_text_repel).
## Saving 7 x 5 in image
## Warning: Removed 8 rows containing non-finite values (stat_smooth).
## Warning: Removed 8 rows containing missing values (geom_point).
## Warning: Removed 8 rows containing missing values (geom_text_repel).

## Warning: Removed 8 rows containing non-finite values (stat_smooth).
## Warning: Removed 8 rows containing missing values (geom_point).
## Warning: Removed 8 rows containing missing values (geom_text_repel).
## Saving 7 x 5 in image
## Warning: Removed 8 rows containing non-finite values (stat_smooth).
## Warning: Removed 8 rows containing missing values (geom_point).
## Warning: Removed 8 rows containing missing values (geom_text_repel).

## Warning: Removed 8 rows containing non-finite values (stat_smooth).
## Warning: Removed 8 rows containing missing values (geom_point).
## Warning: Removed 8 rows containing missing values (geom_text_repel).
## Saving 7 x 5 in image
## Warning: Removed 8 rows containing non-finite values (stat_smooth).
## Warning: Removed 8 rows containing missing values (geom_point).
## Warning: Removed 8 rows containing missing values (geom_text_repel).

## Warning: Removed 8 rows containing non-finite values (stat_smooth).
## Warning: Removed 8 rows containing missing values (geom_point).
## Warning: Removed 8 rows containing missing values (geom_text_repel).
## Saving 7 x 5 in image
## Warning: Removed 8 rows containing non-finite values (stat_smooth).
## Warning: Removed 8 rows containing missing values (geom_point).
## Warning: Removed 8 rows containing missing values (geom_text_repel).

## Warning: Removed 8 rows containing non-finite values (stat_smooth).
## Warning: Removed 8 rows containing missing values (geom_point).
## Warning: Removed 8 rows containing missing values (geom_text_repel).
## Saving 7 x 5 in image
## Warning: Removed 8 rows containing non-finite values (stat_smooth).
## Warning: Removed 8 rows containing missing values (geom_point).
## Warning: Removed 8 rows containing missing values (geom_text_repel).

## Warning: Removed 8 rows containing non-finite values (stat_smooth).
## Warning: Removed 8 rows containing missing values (geom_point).
## Warning: Removed 8 rows containing missing values (geom_text_repel).
## Saving 7 x 5 in image
## Warning: Removed 8 rows containing non-finite values (stat_smooth).
## Warning: Removed 8 rows containing missing values (geom_point).
## Warning: Removed 8 rows containing missing values (geom_text_repel).

## Warning: Removed 8 rows containing non-finite values (stat_smooth).
## Warning: Removed 8 rows containing missing values (geom_point).
## Warning: Removed 8 rows containing missing values (geom_text_repel).
## Saving 7 x 5 in image
## Warning: Removed 8 rows containing non-finite values (stat_smooth).
## Warning: Removed 8 rows containing missing values (geom_point).
## Warning: Removed 8 rows containing missing values (geom_text_repel).

## Warning: Removed 8 rows containing non-finite values (stat_smooth).
## Warning: Removed 8 rows containing missing values (geom_point).
## Warning: Removed 8 rows containing missing values (geom_text_repel).
## Saving 7 x 5 in image
## Warning: Removed 8 rows containing non-finite values (stat_smooth).
## Warning: Removed 8 rows containing missing values (geom_point).
## Warning: Removed 8 rows containing missing values (geom_text_repel).

## Warning: Removed 17 rows containing non-finite values (stat_smooth).
## Warning: Removed 17 rows containing missing values (geom_point).
## Warning: Removed 17 rows containing missing values (geom_text_repel).
## Saving 7 x 5 in image
## Warning: Removed 17 rows containing non-finite values (stat_smooth).
## Warning: Removed 17 rows containing missing values (geom_point).
## Warning: Removed 17 rows containing missing values (geom_text_repel).

## Warning: Removed 8 rows containing non-finite values (stat_smooth).
## Warning: Removed 8 rows containing missing values (geom_point).
## Warning: Removed 8 rows containing missing values (geom_text_repel).
## Saving 7 x 5 in image
## Warning: Removed 8 rows containing non-finite values (stat_smooth).
## Warning: Removed 8 rows containing missing values (geom_point).
## Warning: Removed 8 rows containing missing values (geom_text_repel).

## Warning: Removed 16 rows containing non-finite values (stat_smooth).
## Warning: Removed 16 rows containing missing values (geom_point).
## Warning: Removed 16 rows containing missing values (geom_text_repel).
## Saving 7 x 5 in image
## Warning: Removed 16 rows containing non-finite values (stat_smooth).
## Warning: Removed 16 rows containing missing values (geom_point).
## Warning: Removed 16 rows containing missing values (geom_text_repel).

## Warning: Removed 16 rows containing non-finite values (stat_smooth).
## Warning: Removed 16 rows containing missing values (geom_point).
## Warning: Removed 16 rows containing missing values (geom_text_repel).
## Saving 7 x 5 in image
## Warning: Removed 16 rows containing non-finite values (stat_smooth).
## Warning: Removed 16 rows containing missing values (geom_point).
## Warning: Removed 16 rows containing missing values (geom_text_repel).

## Warning: Removed 8 rows containing non-finite values (stat_smooth).
## Warning: Removed 8 rows containing missing values (geom_point).
## Warning: Removed 8 rows containing missing values (geom_text_repel).
## Saving 7 x 5 in image
## Warning: Removed 8 rows containing non-finite values (stat_smooth).
## Warning: Removed 8 rows containing missing values (geom_point).
## Warning: Removed 8 rows containing missing values (geom_text_repel).

## Warning: Removed 14 rows containing non-finite values (stat_smooth).
## Warning: Removed 14 rows containing missing values (geom_point).
## Warning: Removed 14 rows containing missing values (geom_text_repel).
## Saving 7 x 5 in image
## Warning: Removed 14 rows containing non-finite values (stat_smooth).
## Warning: Removed 14 rows containing missing values (geom_point).
## Warning: Removed 14 rows containing missing values (geom_text_repel).

## [[1]]
## [1] "../../output/figures/state_legit_X_corruption_control_recipients.png"
##
## [[2]]
## [1] "../../output/figures/state_legit_X_gov_effectiveness_recipients.png"
##
## [[3]]
## [1] "../../output/figures/state_legit_X_rule_of_law_recipients.png"
##
## [[4]]
## [1] "../../output/figures/state_legit_X_conflict_displacement_recipients.png"
##
## [[5]]
## [1] "../../output/figures/state_legit_X_disaster_displacement_recipients.png"
##
## [[6]]
## [1] "../../output/figures/state_legit_X_air_quality_recipients.png"
##
## [[7]]
## [1] "../../output/figures/state_legit_X_climate_change_recipients.png"
##
## [[8]]
## [1] "../../output/figures/state_legit_X_migrant_stock_recipients.png"
##
## [[9]]
## [1] "../../output/figures/state_legit_X_refugee_stock_recipients.png"
##
## [[10]]
## [1] "../../output/figures/state_legit_X_gdp_recipients.png"
##
## [[11]]
## [1] "../../output/figures/state_legit_X_cpa_d_12_recipients.png"
##
## [[12]]
## [1] "../../output/figures/state_legit_X_cpa_d_avg_recipients.png"
##
## [[13]]
## [1] "../../output/figures/state_legit_X_hdi_value_recipients.png"
##
## [[14]]
## [1] "../../output/figures/state_legit_X_gini_recipients.png"
All Countries Except Afghanistan
df.noafg <- df %>% filter(iso != 'AFG')
lapply(names(df.noafg %>% select(-iso, -country_name, -state_legit)),
function(var_x){
plt <- ggplot(df.noafg %>% filter(iso != 'AFG'), aes_string(x=var_x, y='state_legit')) +
geom_point(colour='orange') +
stat_smooth(method='lm', formula='y~x', fullrange=T, color='purple') +
ggrepel::geom_text_repel(label=df.noafg$iso) +
theme_classic() +
labs(title=paste(col_names[var_x], 'vs.', 'State Legitimacy'))
print(plt)
if (SAVE.RESULTS) {
ggsave(paste(output.fig.dir, '/state_legit_X_', var_x, '_NOAFG', '.png', sep=''))
}
}
)
## Warning: Removed 12 rows containing non-finite values (stat_smooth).
## Warning: Removed 12 rows containing missing values (geom_point).
## Warning: Removed 12 rows containing missing values (geom_text_repel).
## Saving 7 x 5 in image
## Warning: Removed 12 rows containing non-finite values (stat_smooth).
## Warning: Removed 12 rows containing missing values (geom_point).
## Warning: Removed 12 rows containing missing values (geom_text_repel).

## Warning: Removed 12 rows containing non-finite values (stat_smooth).
## Warning: Removed 12 rows containing missing values (geom_point).
## Warning: Removed 12 rows containing missing values (geom_text_repel).
## Saving 7 x 5 in image
## Warning: Removed 12 rows containing non-finite values (stat_smooth).
## Warning: Removed 12 rows containing missing values (geom_point).
## Warning: Removed 12 rows containing missing values (geom_text_repel).

## Warning: Removed 12 rows containing non-finite values (stat_smooth).
## Warning: Removed 12 rows containing missing values (geom_point).
## Warning: Removed 12 rows containing missing values (geom_text_repel).
## Saving 7 x 5 in image
## Warning: Removed 12 rows containing non-finite values (stat_smooth).
## Warning: Removed 12 rows containing missing values (geom_point).
## Warning: Removed 12 rows containing missing values (geom_text_repel).

## Warning: Removed 12 rows containing non-finite values (stat_smooth).
## Warning: Removed 12 rows containing missing values (geom_point).
## Warning: Removed 12 rows containing missing values (geom_text_repel).
## Saving 7 x 5 in image
## Warning: Removed 12 rows containing non-finite values (stat_smooth).
## Warning: Removed 12 rows containing missing values (geom_point).
## Warning: Removed 12 rows containing missing values (geom_text_repel).

## Warning: Removed 12 rows containing non-finite values (stat_smooth).
## Warning: Removed 12 rows containing missing values (geom_point).
## Warning: Removed 12 rows containing missing values (geom_text_repel).
## Saving 7 x 5 in image
## Warning: Removed 12 rows containing non-finite values (stat_smooth).
## Warning: Removed 12 rows containing missing values (geom_point).
## Warning: Removed 12 rows containing missing values (geom_text_repel).

## Warning: Removed 11 rows containing non-finite values (stat_smooth).
## Warning: Removed 11 rows containing missing values (geom_point).
## Warning: Removed 11 rows containing missing values (geom_text_repel).
## Saving 7 x 5 in image
## Warning: Removed 11 rows containing non-finite values (stat_smooth).
## Warning: Removed 11 rows containing missing values (geom_point).
## Warning: Removed 11 rows containing missing values (geom_text_repel).

## Warning: Removed 11 rows containing non-finite values (stat_smooth).
## Warning: Removed 11 rows containing missing values (geom_point).
## Warning: Removed 11 rows containing missing values (geom_text_repel).
## Saving 7 x 5 in image
## Warning: Removed 11 rows containing non-finite values (stat_smooth).
## Warning: Removed 11 rows containing missing values (geom_point).
## Warning: Removed 11 rows containing missing values (geom_text_repel).

## Warning: Removed 11 rows containing non-finite values (stat_smooth).
## Warning: Removed 11 rows containing missing values (geom_point).
## Warning: Removed 11 rows containing missing values (geom_text_repel).
## Saving 7 x 5 in image
## Warning: Removed 11 rows containing non-finite values (stat_smooth).
## Warning: Removed 11 rows containing missing values (geom_point).
## Warning: Removed 11 rows containing missing values (geom_text_repel).

## Warning: Removed 22 rows containing non-finite values (stat_smooth).
## Warning: Removed 22 rows containing missing values (geom_point).
## Warning: Removed 22 rows containing missing values (geom_text_repel).
## Saving 7 x 5 in image
## Warning: Removed 22 rows containing non-finite values (stat_smooth).
## Warning: Removed 22 rows containing missing values (geom_point).
## Warning: Removed 22 rows containing missing values (geom_text_repel).

## Warning: Removed 11 rows containing non-finite values (stat_smooth).
## Warning: Removed 11 rows containing missing values (geom_point).
## Warning: Removed 11 rows containing missing values (geom_text_repel).
## Saving 7 x 5 in image
## Warning: Removed 11 rows containing non-finite values (stat_smooth).
## Warning: Removed 11 rows containing missing values (geom_point).
## Warning: Removed 11 rows containing missing values (geom_text_repel).

## Warning: Removed 31 rows containing non-finite values (stat_smooth).
## Warning: Removed 31 rows containing missing values (geom_point).
## Warning: Removed 31 rows containing missing values (geom_text_repel).
## Saving 7 x 5 in image
## Warning: Removed 31 rows containing non-finite values (stat_smooth).
## Warning: Removed 31 rows containing missing values (geom_point).
## Warning: Removed 31 rows containing missing values (geom_text_repel).

## Warning: Removed 31 rows containing non-finite values (stat_smooth).
## Warning: Removed 31 rows containing missing values (geom_point).
## Warning: Removed 31 rows containing missing values (geom_text_repel).
## Saving 7 x 5 in image
## Warning: Removed 31 rows containing non-finite values (stat_smooth).
## Warning: Removed 31 rows containing missing values (geom_point).
## Warning: Removed 31 rows containing missing values (geom_text_repel).

## Warning: Removed 11 rows containing non-finite values (stat_smooth).
## Warning: Removed 11 rows containing missing values (geom_point).
## Warning: Removed 11 rows containing missing values (geom_text_repel).
## Saving 7 x 5 in image
## Warning: Removed 11 rows containing non-finite values (stat_smooth).
## Warning: Removed 11 rows containing missing values (geom_point).
## Warning: Removed 11 rows containing missing values (geom_text_repel).

## Warning: Removed 19 rows containing non-finite values (stat_smooth).
## Warning: Removed 19 rows containing missing values (geom_point).
## Warning: Removed 19 rows containing missing values (geom_text_repel).
## Saving 7 x 5 in image
## Warning: Removed 19 rows containing non-finite values (stat_smooth).
## Warning: Removed 19 rows containing missing values (geom_point).
## Warning: Removed 19 rows containing missing values (geom_text_repel).

## [[1]]
## [1] "../../output/figures/state_legit_X_corruption_control_NOAFG.png"
##
## [[2]]
## [1] "../../output/figures/state_legit_X_gov_effectiveness_NOAFG.png"
##
## [[3]]
## [1] "../../output/figures/state_legit_X_rule_of_law_NOAFG.png"
##
## [[4]]
## [1] "../../output/figures/state_legit_X_conflict_displacement_NOAFG.png"
##
## [[5]]
## [1] "../../output/figures/state_legit_X_disaster_displacement_NOAFG.png"
##
## [[6]]
## [1] "../../output/figures/state_legit_X_air_quality_NOAFG.png"
##
## [[7]]
## [1] "../../output/figures/state_legit_X_climate_change_NOAFG.png"
##
## [[8]]
## [1] "../../output/figures/state_legit_X_migrant_stock_NOAFG.png"
##
## [[9]]
## [1] "../../output/figures/state_legit_X_refugee_stock_NOAFG.png"
##
## [[10]]
## [1] "../../output/figures/state_legit_X_gdp_NOAFG.png"
##
## [[11]]
## [1] "../../output/figures/state_legit_X_cpa_d_12_NOAFG.png"
##
## [[12]]
## [1] "../../output/figures/state_legit_X_cpa_d_avg_NOAFG.png"
##
## [[13]]
## [1] "../../output/figures/state_legit_X_hdi_value_NOAFG.png"
##
## [[14]]
## [1] "../../output/figures/state_legit_X_gini_NOAFG.png"
climate.model <- lm(state_legit ~ climate_change + air_quality + gdp, df)
governance.model <- lm(state_legit ~ rule_of_law + gov_effectiveness + corruption_control + gdp, df)
migration.model <- lm(state_legit ~ migrant_stock + refugee_stock + conflict_displacement + disaster_displacement + gdp, df)
full.model <- lm(state_legit ~ rule_of_law + gov_effectiveness + corruption_control + migrant_stock + refugee_stock + conflict_displacement + disaster_displacement + climate_change + air_quality + gdp, df)
stargazer(climate.model, migration.model, governance.model, full.model, type='text')
##
## =================================================================================================================
## Dependent variable:
## -------------------------------------------------------------------------------------------
## state_legit
## (1) (2) (3) (4)
## -----------------------------------------------------------------------------------------------------------------
## climate_change -0.004 0.0001
## (0.029) (0.029)
##
## air_quality 0.038 -0.027
## (0.034) (0.033)
##
## migrant_stock -0.004 -0.004
## (0.002) (0.002)
##
## refugee_stock -0.024* -0.030**
## (0.014) (0.012)
##
## conflict_displacement -0.024*** -0.017**
## (0.008) (0.007)
##
## disaster_displacement 0.071*** 0.065***
## (0.022) (0.018)
##
## rule_of_law 2.227** 4.586***
## (1.035) (1.556)
##
## gov_effectiveness -1.861** -2.329**
## (0.738) (0.960)
##
## corruption_control 1.201* -0.667
## (0.653) (1.057)
##
## gdp 0.056 0.190*** 0.043 0.134**
## (0.051) (0.031) (0.030) (0.057)
##
## Constant 1.940 2.234*** 3.844*** 4.503***
## (1.296) (0.415) (0.388) (1.288)
##
## -----------------------------------------------------------------------------------------------------------------
## Observations 38 27 37 27
## R2 0.421 0.748 0.719 0.890
## Adjusted R2 0.370 0.688 0.684 0.821
## Residual Std. Error 2.017 (df = 34) 1.533 (df = 21) 1.427 (df = 32) 1.160 (df = 16)
## F Statistic 8.245*** (df = 3; 34) 12.460*** (df = 5; 21) 20.490*** (df = 4; 32) 12.942*** (df = 10; 16)
## =================================================================================================================
## Note: *p<0.1; **p<0.05; ***p<0.01
if (SAVE.RESULTS) {
stargazer(climate.model, migration.model, governance.model, full.model, type='html', out=paste(output.tab.dir, '/state_legit_reg.html', sep=''))
}
##
## <table style="text-align:center"><tr><td colspan="5" style="border-bottom: 1px solid black"></td></tr><tr><td style="text-align:left"></td><td colspan="4"><em>Dependent variable:</em></td></tr>
## <tr><td></td><td colspan="4" style="border-bottom: 1px solid black"></td></tr>
## <tr><td style="text-align:left"></td><td colspan="4">state_legit</td></tr>
## <tr><td style="text-align:left"></td><td>(1)</td><td>(2)</td><td>(3)</td><td>(4)</td></tr>
## <tr><td colspan="5" style="border-bottom: 1px solid black"></td></tr><tr><td style="text-align:left">climate_change</td><td>-0.004</td><td></td><td></td><td>0.0001</td></tr>
## <tr><td style="text-align:left"></td><td>(0.029)</td><td></td><td></td><td>(0.029)</td></tr>
## <tr><td style="text-align:left"></td><td></td><td></td><td></td><td></td></tr>
## <tr><td style="text-align:left">air_quality</td><td>0.038</td><td></td><td></td><td>-0.027</td></tr>
## <tr><td style="text-align:left"></td><td>(0.034)</td><td></td><td></td><td>(0.033)</td></tr>
## <tr><td style="text-align:left"></td><td></td><td></td><td></td><td></td></tr>
## <tr><td style="text-align:left">migrant_stock</td><td></td><td>-0.004</td><td></td><td>-0.004</td></tr>
## <tr><td style="text-align:left"></td><td></td><td>(0.002)</td><td></td><td>(0.002)</td></tr>
## <tr><td style="text-align:left"></td><td></td><td></td><td></td><td></td></tr>
## <tr><td style="text-align:left">refugee_stock</td><td></td><td>-0.024<sup>*</sup></td><td></td><td>-0.030<sup>**</sup></td></tr>
## <tr><td style="text-align:left"></td><td></td><td>(0.014)</td><td></td><td>(0.012)</td></tr>
## <tr><td style="text-align:left"></td><td></td><td></td><td></td><td></td></tr>
## <tr><td style="text-align:left">conflict_displacement</td><td></td><td>-0.024<sup>***</sup></td><td></td><td>-0.017<sup>**</sup></td></tr>
## <tr><td style="text-align:left"></td><td></td><td>(0.008)</td><td></td><td>(0.007)</td></tr>
## <tr><td style="text-align:left"></td><td></td><td></td><td></td><td></td></tr>
## <tr><td style="text-align:left">disaster_displacement</td><td></td><td>0.071<sup>***</sup></td><td></td><td>0.065<sup>***</sup></td></tr>
## <tr><td style="text-align:left"></td><td></td><td>(0.022)</td><td></td><td>(0.018)</td></tr>
## <tr><td style="text-align:left"></td><td></td><td></td><td></td><td></td></tr>
## <tr><td style="text-align:left">rule_of_law</td><td></td><td></td><td>2.227<sup>**</sup></td><td>4.586<sup>***</sup></td></tr>
## <tr><td style="text-align:left"></td><td></td><td></td><td>(1.035)</td><td>(1.556)</td></tr>
## <tr><td style="text-align:left"></td><td></td><td></td><td></td><td></td></tr>
## <tr><td style="text-align:left">gov_effectiveness</td><td></td><td></td><td>-1.861<sup>**</sup></td><td>-2.329<sup>**</sup></td></tr>
## <tr><td style="text-align:left"></td><td></td><td></td><td>(0.738)</td><td>(0.960)</td></tr>
## <tr><td style="text-align:left"></td><td></td><td></td><td></td><td></td></tr>
## <tr><td style="text-align:left">corruption_control</td><td></td><td></td><td>1.201<sup>*</sup></td><td>-0.667</td></tr>
## <tr><td style="text-align:left"></td><td></td><td></td><td>(0.653)</td><td>(1.057)</td></tr>
## <tr><td style="text-align:left"></td><td></td><td></td><td></td><td></td></tr>
## <tr><td style="text-align:left">gdp</td><td>0.056</td><td>0.190<sup>***</sup></td><td>0.043</td><td>0.134<sup>**</sup></td></tr>
## <tr><td style="text-align:left"></td><td>(0.051)</td><td>(0.031)</td><td>(0.030)</td><td>(0.057)</td></tr>
## <tr><td style="text-align:left"></td><td></td><td></td><td></td><td></td></tr>
## <tr><td style="text-align:left">Constant</td><td>1.940</td><td>2.234<sup>***</sup></td><td>3.844<sup>***</sup></td><td>4.503<sup>***</sup></td></tr>
## <tr><td style="text-align:left"></td><td>(1.296)</td><td>(0.415)</td><td>(0.388)</td><td>(1.288)</td></tr>
## <tr><td style="text-align:left"></td><td></td><td></td><td></td><td></td></tr>
## <tr><td colspan="5" style="border-bottom: 1px solid black"></td></tr><tr><td style="text-align:left">Observations</td><td>38</td><td>27</td><td>37</td><td>27</td></tr>
## <tr><td style="text-align:left">R<sup>2</sup></td><td>0.421</td><td>0.748</td><td>0.719</td><td>0.890</td></tr>
## <tr><td style="text-align:left">Adjusted R<sup>2</sup></td><td>0.370</td><td>0.688</td><td>0.684</td><td>0.821</td></tr>
## <tr><td style="text-align:left">Residual Std. Error</td><td>2.017 (df = 34)</td><td>1.533 (df = 21)</td><td>1.427 (df = 32)</td><td>1.160 (df = 16)</td></tr>
## <tr><td style="text-align:left">F Statistic</td><td>8.245<sup>***</sup> (df = 3; 34)</td><td>12.460<sup>***</sup> (df = 5; 21)</td><td>20.490<sup>***</sup> (df = 4; 32)</td><td>12.942<sup>***</sup> (df = 10; 16)</td></tr>
## <tr><td colspan="5" style="border-bottom: 1px solid black"></td></tr><tr><td style="text-align:left"><em>Note:</em></td><td colspan="4" style="text-align:right"><sup>*</sup>p<0.1; <sup>**</sup>p<0.05; <sup>***</sup>p<0.01</td></tr>
## </table>
climate.model <- lm(cpa_d_avg ~ climate_change + air_quality + gdp , df)
governance.model <- lm(cpa_d_avg ~ rule_of_law + gov_effectiveness + corruption_control + gdp , df)
migration.model <- lm(cpa_d_avg ~ migrant_stock + refugee_stock + conflict_displacement + disaster_displacement + gdp , df)
full.model <- lm(cpa_d_avg ~ rule_of_law + gov_effectiveness + corruption_control + migrant_stock + refugee_stock + conflict_displacement + disaster_displacement + climate_change + air_quality + gdp , df)
stargazer(climate.model, migration.model, governance.model, full.model, type='text')
##
## =====================================================================================
## Dependent variable:
## ---------------------------------------------------------------
## cpa_d_avg
## (1) (2) (3) (4)
## -------------------------------------------------------------------------------------
## climate_change -0.006 0.005
## (0.009)
##
## air_quality -0.032** -0.017
## (0.015)
##
## migrant_stock 0.004 0.004
## (0.005)
##
## refugee_stock -0.001 -0.023
## (0.016)
##
## conflict_displacement 0.001 -0.005
## (0.007)
##
## disaster_displacement -0.012 0.022
## (0.023)
##
## rule_of_law -0.069 3.201
## (0.259)
##
## gov_effectiveness 0.817*** -0.203
## (0.269)
##
## corruption_control -0.075 -2.868
## (0.229)
##
## gdp 0.188* -0.043 -0.078*
## (0.097) (0.165) (0.040)
##
## Constant 4.048*** 3.611*** 4.007*** 3.547
## (0.454) (0.409) (0.224)
##
## -------------------------------------------------------------------------------------
## Observations 23 10 25 10
## R2 0.202 0.463 0.355 1.000
## Adjusted R2 0.077 -0.208 0.226
## Residual Std. Error 0.516 (df = 19) 0.492 (df = 4) 0.469 (df = 20)
## F Statistic 1.608 (df = 3; 19) 0.690 (df = 5; 4) 2.749* (df = 4; 20)
## =====================================================================================
## Note: *p<0.1; **p<0.05; ***p<0.01
if (SAVE.RESULTS) {
stargazer(climate.model, migration.model, governance.model, full.model, type='html', out=paste(output.tab.dir, '/cpa_d_avg_reg.html', sep=''))
}
##
## <table style="text-align:center"><tr><td colspan="5" style="border-bottom: 1px solid black"></td></tr><tr><td style="text-align:left"></td><td colspan="4"><em>Dependent variable:</em></td></tr>
## <tr><td></td><td colspan="4" style="border-bottom: 1px solid black"></td></tr>
## <tr><td style="text-align:left"></td><td colspan="4">cpa_d_avg</td></tr>
## <tr><td style="text-align:left"></td><td>(1)</td><td>(2)</td><td>(3)</td><td>(4)</td></tr>
## <tr><td colspan="5" style="border-bottom: 1px solid black"></td></tr><tr><td style="text-align:left">climate_change</td><td>-0.006</td><td></td><td></td><td>0.005</td></tr>
## <tr><td style="text-align:left"></td><td>(0.009)</td><td></td><td></td><td></td></tr>
## <tr><td style="text-align:left"></td><td></td><td></td><td></td><td></td></tr>
## <tr><td style="text-align:left">air_quality</td><td>-0.032<sup>**</sup></td><td></td><td></td><td>-0.017</td></tr>
## <tr><td style="text-align:left"></td><td>(0.015)</td><td></td><td></td><td></td></tr>
## <tr><td style="text-align:left"></td><td></td><td></td><td></td><td></td></tr>
## <tr><td style="text-align:left">migrant_stock</td><td></td><td>0.004</td><td></td><td>0.004</td></tr>
## <tr><td style="text-align:left"></td><td></td><td>(0.005)</td><td></td><td></td></tr>
## <tr><td style="text-align:left"></td><td></td><td></td><td></td><td></td></tr>
## <tr><td style="text-align:left">refugee_stock</td><td></td><td>-0.001</td><td></td><td>-0.023</td></tr>
## <tr><td style="text-align:left"></td><td></td><td>(0.016)</td><td></td><td></td></tr>
## <tr><td style="text-align:left"></td><td></td><td></td><td></td><td></td></tr>
## <tr><td style="text-align:left">conflict_displacement</td><td></td><td>0.001</td><td></td><td>-0.005</td></tr>
## <tr><td style="text-align:left"></td><td></td><td>(0.007)</td><td></td><td></td></tr>
## <tr><td style="text-align:left"></td><td></td><td></td><td></td><td></td></tr>
## <tr><td style="text-align:left">disaster_displacement</td><td></td><td>-0.012</td><td></td><td>0.022</td></tr>
## <tr><td style="text-align:left"></td><td></td><td>(0.023)</td><td></td><td></td></tr>
## <tr><td style="text-align:left"></td><td></td><td></td><td></td><td></td></tr>
## <tr><td style="text-align:left">rule_of_law</td><td></td><td></td><td>-0.069</td><td>3.201</td></tr>
## <tr><td style="text-align:left"></td><td></td><td></td><td>(0.259)</td><td></td></tr>
## <tr><td style="text-align:left"></td><td></td><td></td><td></td><td></td></tr>
## <tr><td style="text-align:left">gov_effectiveness</td><td></td><td></td><td>0.817<sup>***</sup></td><td>-0.203</td></tr>
## <tr><td style="text-align:left"></td><td></td><td></td><td>(0.269)</td><td></td></tr>
## <tr><td style="text-align:left"></td><td></td><td></td><td></td><td></td></tr>
## <tr><td style="text-align:left">corruption_control</td><td></td><td></td><td>-0.075</td><td>-2.868</td></tr>
## <tr><td style="text-align:left"></td><td></td><td></td><td>(0.229)</td><td></td></tr>
## <tr><td style="text-align:left"></td><td></td><td></td><td></td><td></td></tr>
## <tr><td style="text-align:left">gdp</td><td>0.188<sup>*</sup></td><td>-0.043</td><td>-0.078<sup>*</sup></td><td></td></tr>
## <tr><td style="text-align:left"></td><td>(0.097)</td><td>(0.165)</td><td>(0.040)</td><td></td></tr>
## <tr><td style="text-align:left"></td><td></td><td></td><td></td><td></td></tr>
## <tr><td style="text-align:left">Constant</td><td>4.048<sup>***</sup></td><td>3.611<sup>***</sup></td><td>4.007<sup>***</sup></td><td>3.547</td></tr>
## <tr><td style="text-align:left"></td><td>(0.454)</td><td>(0.409)</td><td>(0.224)</td><td></td></tr>
## <tr><td style="text-align:left"></td><td></td><td></td><td></td><td></td></tr>
## <tr><td colspan="5" style="border-bottom: 1px solid black"></td></tr><tr><td style="text-align:left">Observations</td><td>23</td><td>10</td><td>25</td><td>10</td></tr>
## <tr><td style="text-align:left">R<sup>2</sup></td><td>0.202</td><td>0.463</td><td>0.355</td><td>1.000</td></tr>
## <tr><td style="text-align:left">Adjusted R<sup>2</sup></td><td>0.077</td><td>-0.208</td><td>0.226</td><td></td></tr>
## <tr><td style="text-align:left">Residual Std. Error</td><td>0.516 (df = 19)</td><td>0.492 (df = 4)</td><td>0.469 (df = 20)</td><td></td></tr>
## <tr><td style="text-align:left">F Statistic</td><td>1.608 (df = 3; 19)</td><td>0.690 (df = 5; 4)</td><td>2.749<sup>*</sup> (df = 4; 20)</td><td></td></tr>
## <tr><td colspan="5" style="border-bottom: 1px solid black"></td></tr><tr><td style="text-align:left"><em>Note:</em></td><td colspan="4" style="text-align:right"><sup>*</sup>p<0.1; <sup>**</sup>p<0.05; <sup>***</sup>p<0.01</td></tr>
## </table>
climate.model <- lm(cpa_d_12 ~ climate_change + air_quality + gdp, df)
governance.model <- lm(cpa_d_12 ~ rule_of_law + gov_effectiveness + corruption_control + gdp, df)
migration.model <- lm(cpa_d_12 ~ migrant_stock + refugee_stock + conflict_displacement + disaster_displacement + gdp, df)
full.model <- lm(cpa_d_12 ~ rule_of_law + gov_effectiveness + corruption_control + migrant_stock + refugee_stock + conflict_displacement + disaster_displacement + climate_change + air_quality + gdp, df)
stargazer(climate.model, migration.model, governance.model, full.model, type='text')
##
## =======================================================================================
## Dependent variable:
## -----------------------------------------------------------------
## cpa_d_12
## (1) (2) (3) (4)
## ---------------------------------------------------------------------------------------
## climate_change 0.001 0.019
## (0.012)
##
## air_quality -0.036* -0.053
## (0.020)
##
## migrant_stock 0.007 0.002
## (0.007)
##
## refugee_stock -0.001 -0.011
## (0.024)
##
## conflict_displacement 0.003 0.002
## (0.011)
##
## disaster_displacement -0.025 -0.00002
## (0.035)
##
## rule_of_law 0.618* 3.980
## (0.355)
##
## gov_effectiveness 0.366 0.538
## (0.368)
##
## corruption_control -0.212 -3.455
## (0.314)
##
## gdp 0.308** 0.047 -0.019
## (0.130) (0.248) (0.054)
##
## Constant 3.582*** 3.109*** 3.824*** 4.239
## (0.610) (0.615) (0.307)
##
## ---------------------------------------------------------------------------------------
## Observations 23 10 25 10
## R2 0.239 0.668 0.355 1.000
## Adjusted R2 0.119 0.252 0.226
## Residual Std. Error 0.692 (df = 19) 0.741 (df = 4) 0.643 (df = 20)
## F Statistic 1.988 (df = 3; 19) 1.607 (df = 5; 4) 2.755* (df = 4; 20)
## =======================================================================================
## Note: *p<0.1; **p<0.05; ***p<0.01
if (SAVE.RESULTS) {
stargazer(climate.model, migration.model, governance.model, full.model, type='html', out=paste(output.tab.dir, '/cpa_d_12_reg.html', sep=''))
}
##
## <table style="text-align:center"><tr><td colspan="5" style="border-bottom: 1px solid black"></td></tr><tr><td style="text-align:left"></td><td colspan="4"><em>Dependent variable:</em></td></tr>
## <tr><td></td><td colspan="4" style="border-bottom: 1px solid black"></td></tr>
## <tr><td style="text-align:left"></td><td colspan="4">cpa_d_12</td></tr>
## <tr><td style="text-align:left"></td><td>(1)</td><td>(2)</td><td>(3)</td><td>(4)</td></tr>
## <tr><td colspan="5" style="border-bottom: 1px solid black"></td></tr><tr><td style="text-align:left">climate_change</td><td>0.001</td><td></td><td></td><td>0.019</td></tr>
## <tr><td style="text-align:left"></td><td>(0.012)</td><td></td><td></td><td></td></tr>
## <tr><td style="text-align:left"></td><td></td><td></td><td></td><td></td></tr>
## <tr><td style="text-align:left">air_quality</td><td>-0.036<sup>*</sup></td><td></td><td></td><td>-0.053</td></tr>
## <tr><td style="text-align:left"></td><td>(0.020)</td><td></td><td></td><td></td></tr>
## <tr><td style="text-align:left"></td><td></td><td></td><td></td><td></td></tr>
## <tr><td style="text-align:left">migrant_stock</td><td></td><td>0.007</td><td></td><td>0.002</td></tr>
## <tr><td style="text-align:left"></td><td></td><td>(0.007)</td><td></td><td></td></tr>
## <tr><td style="text-align:left"></td><td></td><td></td><td></td><td></td></tr>
## <tr><td style="text-align:left">refugee_stock</td><td></td><td>-0.001</td><td></td><td>-0.011</td></tr>
## <tr><td style="text-align:left"></td><td></td><td>(0.024)</td><td></td><td></td></tr>
## <tr><td style="text-align:left"></td><td></td><td></td><td></td><td></td></tr>
## <tr><td style="text-align:left">conflict_displacement</td><td></td><td>0.003</td><td></td><td>0.002</td></tr>
## <tr><td style="text-align:left"></td><td></td><td>(0.011)</td><td></td><td></td></tr>
## <tr><td style="text-align:left"></td><td></td><td></td><td></td><td></td></tr>
## <tr><td style="text-align:left">disaster_displacement</td><td></td><td>-0.025</td><td></td><td>-0.00002</td></tr>
## <tr><td style="text-align:left"></td><td></td><td>(0.035)</td><td></td><td></td></tr>
## <tr><td style="text-align:left"></td><td></td><td></td><td></td><td></td></tr>
## <tr><td style="text-align:left">rule_of_law</td><td></td><td></td><td>0.618<sup>*</sup></td><td>3.980</td></tr>
## <tr><td style="text-align:left"></td><td></td><td></td><td>(0.355)</td><td></td></tr>
## <tr><td style="text-align:left"></td><td></td><td></td><td></td><td></td></tr>
## <tr><td style="text-align:left">gov_effectiveness</td><td></td><td></td><td>0.366</td><td>0.538</td></tr>
## <tr><td style="text-align:left"></td><td></td><td></td><td>(0.368)</td><td></td></tr>
## <tr><td style="text-align:left"></td><td></td><td></td><td></td><td></td></tr>
## <tr><td style="text-align:left">corruption_control</td><td></td><td></td><td>-0.212</td><td>-3.455</td></tr>
## <tr><td style="text-align:left"></td><td></td><td></td><td>(0.314)</td><td></td></tr>
## <tr><td style="text-align:left"></td><td></td><td></td><td></td><td></td></tr>
## <tr><td style="text-align:left">gdp</td><td>0.308<sup>**</sup></td><td>0.047</td><td>-0.019</td><td></td></tr>
## <tr><td style="text-align:left"></td><td>(0.130)</td><td>(0.248)</td><td>(0.054)</td><td></td></tr>
## <tr><td style="text-align:left"></td><td></td><td></td><td></td><td></td></tr>
## <tr><td style="text-align:left">Constant</td><td>3.582<sup>***</sup></td><td>3.109<sup>***</sup></td><td>3.824<sup>***</sup></td><td>4.239</td></tr>
## <tr><td style="text-align:left"></td><td>(0.610)</td><td>(0.615)</td><td>(0.307)</td><td></td></tr>
## <tr><td style="text-align:left"></td><td></td><td></td><td></td><td></td></tr>
## <tr><td colspan="5" style="border-bottom: 1px solid black"></td></tr><tr><td style="text-align:left">Observations</td><td>23</td><td>10</td><td>25</td><td>10</td></tr>
## <tr><td style="text-align:left">R<sup>2</sup></td><td>0.239</td><td>0.668</td><td>0.355</td><td>1.000</td></tr>
## <tr><td style="text-align:left">Adjusted R<sup>2</sup></td><td>0.119</td><td>0.252</td><td>0.226</td><td></td></tr>
## <tr><td style="text-align:left">Residual Std. Error</td><td>0.692 (df = 19)</td><td>0.741 (df = 4)</td><td>0.643 (df = 20)</td><td></td></tr>
## <tr><td style="text-align:left">F Statistic</td><td>1.988 (df = 3; 19)</td><td>1.607 (df = 5; 4)</td><td>2.755<sup>*</sup> (df = 4; 20)</td><td></td></tr>
## <tr><td colspan="5" style="border-bottom: 1px solid black"></td></tr><tr><td style="text-align:left"><em>Note:</em></td><td colspan="4" style="text-align:right"><sup>*</sup>p<0.1; <sup>**</sup>p<0.05; <sup>***</sup>p<0.01</td></tr>
## </table>